Single Table Inheritance
継承関係にある複数のモデルのDB設計
パターンの1つ
長所
必要なテーブルは1つのみで、サブクラスが増えても
テーブル
数は増えない
論理的なレコード全体を取得するのにジョイン不要
レコードのサブクラスの変更が容易
Rails
など
フレームワーク
によってはサポートされているのでコーディングが容易
短所
特定のサブクラスに固有の属性に対して
NOT NULL
制約を適用できない
特定のサブクラスのみを参照すべき他テーブルの外部キー制約が、誤ったサブクラスを参照することを防げない
テーブルのカラム数が多くなりやすい
一部のサブクラスでしか使われない列の値はNULLばかりとなり、見た目がスパースになる